#include "imagem.h"
#include <allegro.h>
#include <string>
#include <map>
#include <stdio.h>
using namespace std;

imagem::imagem(char* file) {
	FILE *pimg = fopen(file, "r");
	int x, y;
	char bmp[150];
	fscanf(pimg, "%s %d %d", bmp, &x, &y);
	this->bmp = imagem::factory(bmp);
	this->w = this->bmp->w;
	this->h = this->bmp->h;
	this->x = x;
	this->y = y;
	strcpy (this->nome, bmp);
	fclose(pimg);
}
	 
imagem::imagem(int x, int y, char* bmp) {
	this->bmp = imagem::factory(bmp);
	this->w = this->bmp->w;
	this->h = this->bmp->h;
	this->x = x;
	this->y = y;
	strcpy(this->nome, bmp);
}

void imagem::draw(BITMAP* buffer) {
	draw_sprite(buffer, this->bmp, this->x, this->y);
}

BITMAP* imagem::factory(string nome) {
	if (bitmaps.find(nome) == bitmaps.end())
      bitmaps[nome] = load_bitmap(nome.c_str(), NULL);
	return bitmaps[nome];
}

map<string, BITMAP*> imagem::bitmaps;
